package cn.skycity.common.service;


import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.skycity.framework.uaa.pojo.dto.SysDeptBo;
import com.skycity.framework.uaa.pojo.entity.SysDept;
import com.skycity.framework.uaa.pojo.vo.DeptVO;
import com.skycity.framework.uaa.pojo.vo.SysDeptVo;

import java.util.List;

/**
 * 菜单控制器
 *
 * @author <a href="mailto:xianrui0365@163.com">xianrui</a>
 * @date 2021-08-22
 */
public interface ISysDeptService extends IService<SysDept> {
    /**
     * 部门表格（Table）层级列表
     *
     * @param status 部门状态： 1-开启 0-禁用
     * @param name
     * @return
     */
    List<DeptVO> listTable(SysDept sysDept);
//
//    /**
//     * 部门树形下拉（TreeSelect）层级列表
//     *
//     * @return
//     */
//    List<TreeSelectVO> listTreeSelect();
//
    /**
     * 新增/修改部门
     *
     * @param dept
     * @return
     */
    Long saveDept(SysDept dept);

    /**
     * 删除部门
     *
     * @param ids 部门ID，多个以英文逗号,拼接字符串
     * @return
     */
    boolean deleteByIds(String ids);


    /**
     * 查询部门树结构信息
     *
     * @param dept 部门信息
     * @return 部门树信息集合
     */
    List<Tree<Long>> selectDeptTreeList(SysDeptBo dept);


    List<Tree<Long>> buildDeptTreeSelect(List<SysDeptVo> depts);
}
